package com.gtq.uhome.mapper;

import com.gtq.uhome.pojo.Consignee;
import com.gtq.uhome.vo.DeliveryDetailsVo;
import com.gtq.uhome.vo.DeliveryOrderStatusVo;
import com.gtq.uhome.vo.SignInStatusVo;
import com.gtq.uhome.vo.UpdateConsigneeVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ConsigneeMapper {

    /**
     * 修改收货人信息
     * @param consignee
     * @return
     */
    Integer update(Consignee consignee);

    /**
     * 更新待审核信息
     * @param deliveryDetailsVo
     * @return
     */
    Integer updateDeliveryDetails(DeliveryDetailsVo deliveryDetailsVo);

    /**
     * 查询获取用户全部地址
     * @param userId
     * @return
     */
    List<Consignee> findAddress(@Param("userId") Integer userId);

    /**
     * 添加用户地址
     * @param consignee
     * @return
     */
    Integer addConsignee(Consignee consignee);


    /**
     * 修改收货人信息
     * @param updateConsignee
     * @return
     */
    Integer updateConsignee(UpdateConsigneeVo updateConsignee);

    /**
     * 用户查看订单状态
     * @param signInStatus
     * @return
     */
    List<DeliveryOrderStatusVo> selectOrderSatus(SignInStatusVo signInStatus);

    /**
     * 修改订单状态:签收成功,失败
     * @param signInStatus
     * @return
     */
    Integer updateOrderState(SignInStatusVo signInStatus);

    /**
     * 生成订单完成时间
     * @param signInStatus
     * @return
     */
    Integer updateOrderTime(SignInStatusVo signInStatus);

    /**
     * 配送员取货
     * @param signInStatus
     * @return
     */
    Integer updateOrder(SignInStatusVo signInStatus);

    /**
     * 订单退回
     * @param signInStatus
     * @return
     */
    Integer updateOrderBack(SignInStatusVo signInStatus);

    /**
     * 配送员消息插入
     * @param signInStatus
     * @return
     */
    Integer insertStaffMsg(SignInStatusVo signInStatus);

    /**
     * 用户消息插入
     * @param signInStatus
     * @return
     */
    Integer insertUserMsg(SignInStatusVo signInStatus);
}